home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO040.dsk / UTILS / TOOLKIT.bas < prev   
BASIC Source File  |  2012-02-16  |  6KB  |  142 lines

  1. 5  REM  THE MAGIC CITY MICRO
  2. 6  REM  & SUPPORT UTILITIES
  3. 7  REM  COPYRIGHT 1984 BY
  4. 8  REM  DAVID M. ALDEN
  5. 100 D$ =  CHR$(4):CR$ =  CHR$(13):SP$ =  CHR$(32):BS$ =  CHR$(8)
  6. 110  PRINT D$"OPEN STATS"
  7. 120  PRINT D$"READ STATS"
  8. 130  INPUT NS,NC,CT
  9. 135  PRINT D$"CLOSE"
  10. 140  DIM FL$(15): DIM FI$(15): DIM FL(15)
  11. 150  PRINT D$
  12. 400 FL$(1) = "1.  First name: ":FL(1) = 7
  13. 410 FL$(2) = "2.  Last  name: ":FL(2) = 10
  14. 420 FL$(3) = "3.  P.O. Box #: ":FL(3) = 3
  15. 430 FL$(4) = "4.  Phone    #: ":FL(4) = 12
  16. 440 FL$(5) = "5.  Password  : ":FL(5) = 5
  17. 450 FL$(6) = "6.  Security 1: ":FL(6) = 1
  18. 460 FL$(7) = "7.  Security 2: ":FL(7) = 1
  19. 470 FL$(8) = "8.  Security 3: ":FL(8) = 1
  20. 480 FL$(9) = "9.  Security 4: ":FL(9) = 1
  21. 490 FL$(10) = "10. Security 5: ":FL(10) = 1
  22. 500 FL$(11) = "11. Last Call : ":FL(11) = 5
  23. 510 FL$(12) = "12. # Calls   : ":FL(12) = 3
  24. 570  GOTO 1010
  25. 580  HOME : VTAB 3: HTAB 12: PRINT "EDIT A RECORD": VTAB 10: PRINT "(Q)uit; Subscriber # 1 - ";NS;" -> ";:IL(1) = 3: GOSUB 910
  26. 590  IF I$ = "Q"  OR I$ = "q"  THEN 1010
  27. 600 RC =  INT( VAL(I$)): IF RC <1  OR RC >NS  THEN 580
  28. 605  HOME 
  29. 610  PRINT D$"OPEN USERS,L62"
  30. 620  PRINT D$"READ USERS,R";RC
  31. 625  FOR X = 1 TO 12: INPUT FI$(X): NEXT X
  32. 630  FOR X = 1 TO 12
  33. 640  PRINT FL$(X);FI$(X)
  34. 650  NEXT X
  35. 660  VTAB 19: HTAB 1
  36. 665  PRINT D$
  37. 670  PRINT "(Q)uit; CHANGE FIELD #";
  38. 675  INVERSE : PRINT SP$;SP$;: NORMAL : PRINT BS$;BS$;:IL(1) = 2: GOSUB 910
  39. 680  IF I$ = "Q"  OR I$ = "q"  THEN 810
  40. 690 I =  INT( VAL(I$)): IF I >12  OR I <1  THEN 670
  41. 700  VTAB 21: HTAB 2
  42. 710  PRINT "Enter new info...": PRINT 
  43. 720  PRINT FL$(I);: CALL  -868
  44. 730  INVERSE : FOR X = 1 TO FL(I): PRINT SP$;: NEXT X
  45. 740  NORMAL : FOR X = 1 TO FL(I): PRINT BS$;: NEXT X
  46. 750 IL(1) = FL(I): GOSUB 910
  47. 760 FI$(I) = I$: VTAB I: HTAB 17: CALL  -868: PRINT FI$(I): GOTO 660
  48. 800  REM  ** SAVE RECORD **
  49. 810  PRINT CR$: PRINT D$"WRITE USERS,R"RC
  50. 820  FOR X = 1 TO 12: PRINT FI$(X): NEXT X
  51. 850  GOTO 1010
  52. 900  REM  ** USER ENTRY **
  53. 910 I$ = "":C$ = ""
  54. 930  FOR X = 1 TO IL(1)
  55. 940  GET C$
  56. 950  IF C$ = CR$  THEN 990
  57. 960  PRINT C$;
  58. 970 I$ = I$ +C$
  59. 980  NEXT X
  60. 990  PRINT : RETURN 
  61. 1000  REM    ** MAIN MENU **
  62. 1010  HOME : PRINT D$"CLOSE"
  63. 1015  HTAB 5: VTAB 7: PRINT "MAGIC CITY UTILITIES"
  64. 1020  VTAB 12: PRINT "1. EDIT SUBSCRIBER RECORD": PRINT "2. LIST SUBSCRIBERS TO PRINTER": PRINT "3. ADD A NEW SUBSCRIBER": PRINT "4. EXIT UTILITY"
  65. 1025  HTAB 6: VTAB 22: PRINT NS" Subscribers"
  66. 1030  HTAB 4: VTAB 17: PRINT "Select 1 - 4 -> ";:IL(1) = 1: GOSUB 910
  67. 1040 I =  INT( VAL(I$)): ON I GOTO 580,1210,1510,1150
  68. 1050  GOTO 1030
  69. 1150  PRINT D$"CLOSE"
  70. 1160  HOME : END 
  71. 1200  REM  ** PRINT REPORTS **
  72. 1210  HOME : VTAB 3: HTAB 14: PRINT "PRINT REPORT"
  73. 1220  VTAB 5: HTAB 7: PRINT NS" Subscribers in database."
  74. 1230  VTAB 16: PRINT "Begin list with subscriber # 1"BS$;:IL(1) = 3: GOSUB 910
  75. 1240  IF I$ = ""  THEN RC(1) = 1: GOTO 1260
  76. 1250 RC(1) =  INT( VAL(I$)): IF   NOT (RC(1) >0  AND RC(1) =  <NS)  THEN 1230
  77. 1252  IF NS >0  AND NS <10  THEN C = 1
  78. 1254  IF NS >9  AND NS <100  THEN C = 2
  79. 1256  IF NS >99  THEN C = 3
  80. 1260  VTAB 18: PRINT "End with subscriber # "NS;: FOR X = 1 TO C: PRINT BS$;: NEXT X
  81. 1265 IL(1) = 3: GOSUB 910
  82. 1270  IF I$ = ""  THEN RC(2) = NS: GOTO 1300
  83. 1280 RC(2) =  INT( VAL(I$)): IF   NOT (RC(2) >0  AND RC(2) =  <NS)  THEN 1260
  84. 1300  IF RC(2) <RC(1)  THEN  PRINT "Bad range...": GOTO 1210
  85. 1303  PRINT D$"OPEN USERS,L62"
  86. 1305  PRINT D$"PR#1"
  87. 1306 L = 1: FOR X = 1 TO 6: PRINT : NEXT X
  88. 1307  PRINT "REC  -SUBSCRIBER NAME-  BOX  PWORD  SECUR 1-5  LAST/#CALLS": PRINT : PRINT 
  89. 1310  PRINT D$"READ USERS,R"RC(1)
  90. 1320  FOR X = 1 TO 12: INPUT FI$(X): NEXT X
  91. 1325  PRINT RC(1);: POKE 36,5: PRINT FI$(1);: POKE 36,13: PRINT FI$(2);: POKE 36,24: PRINT FI$(3);: POKE 36,29: PRINT FI$(5);
  92. 1330  POKE 36,36: PRINT FI$(6)" "FI$(7)" "FI$(8)" "FI$(9)" "FI$(10);
  93. 1335  POKE 36,46: PRINT FI$(11)"  "FI$(12)
  94. 1350  PRINT D$:L = L +1
  95. 1360 RC(1) = RC(1) +1: IF RC(1) >RC(2)  THEN 1400
  96. 1365  IF L >50  THEN  PRINT : PRINT : PRINT : PRINT : PRINT : GOTO 1306
  97. 1370  GOTO 1310
  98. 1400  PRINT CR$: PRINT D$"PR#0"
  99. 1410  GOTO 1010
  100. 1500  REM  ** ADD NEW SUBSCRIBER
  101. 1510 X = 1: HOME : ONERR  GOTO 1650
  102. 1530  PRINT D$"OPEN USERS,L62"
  103. 1540  PRINT D$"READ USERS,R"X
  104. 1550  INPUT N1$
  105. 1560  IF N1$ = "EMPTY"  THEN  GOTO 1600
  106. 1570 X = X +1: GOTO 1540
  107. 1600 RC = X
  108. 1610  PRINT D$"CLOSE": GOTO 1700
  109. 1650  ONERR  GOTO 3405
  110. 1660 NS = NS +1:RC = NS
  111. 1670  PRINT D$"CLOSE": GOTO 1700
  112. 1700  HOME : VTAB 3: PRINT "ENTER DATA FOR SUBSCRIBER #";RC
  113. 1710 I = 1: VTAB 8: PRINT FL$(1): PRINT FL$(2): PRINT FL$(4): PRINT FL$(5)
  114. 1720  VTAB 15: PRINT "Enter subscriber data:"
  115. 1730  PRINT FL$(I);: CALL  -868: INVERSE : FOR X = 1 TO FL(I): PRINT SP$;: NEXT X
  116. 1740  NORMAL : FOR X = 1 TO FL(I): PRINT BS$;: NEXT X
  117. 1750 IL(1) = FL(I): GOSUB 910
  118. 1760 FI$(I) = I$:Z = I +7: HTAB 17: IF Z >9  THEN Z = Z -1
  119. 1761  VTAB Z: CALL  -868: PRINT FI$(I): IF I = 5  THEN 1780
  120. 1765 I = I +1: IF I = 3  THEN I = 4
  121. 1770  GOTO 1720
  122. 1780  VTAB 19: PRINT "All correct? (Y/N) -> ";:IL(1) = 1: GOSUB 910
  123. 1790  IF I$ = "N"  OR I$ = "n"  THEN 1810
  124. 1800  GOTO 1880
  125. 1810  VTAB 22: PRINT "Change field # ";:IL(1) = 1: GOSUB 910
  126. 1820 I =  INT( VAL(I$)): IF   NOT (I >0  AND I <6)  THEN 1810
  127. 1830  IF I = 3  THEN 1810
  128. 1840  VTAB 16: PRINT FL$(I);: CALL  -868: INVERSE : FOR X = 1 TO FL(I): PRINT SP$;: NEXT X
  129. 1850  NORMAL : FOR X = 1 TO FL(I): PRINT BS$;: NEXT X
  130. 1860 IL(1) = FL(I): GOSUB 910
  131. 1870 FI$(I) = I$:Z = I +7: HTAB 17: IF Z >9  THEN Z = Z -1
  132. 1875  VTAB Z: CALL  -868: PRINT FI$(I): GOTO 1780
  133. 1880 FI$(3) =  STR$(RC +113)
  134. 1885 FI$(6) = "1"
  135. 1890  FOR X = 7 TO 12:FI$(X) = "0": NEXT X
  136. 1895  PRINT D$"OPEN USERS,L62"
  137. 1900  PRINT D$"WRITE USERS,R"RC
  138. 1910  FOR X = 1 TO 12: PRINT FI$(X): NEXT X
  139. 1915  PRINT D$"OPEN STATS"
  140. 1920  PRINT D$"WRITE STATS"
  141. 1930  PRINT NS: PRINT NC: PRINT CT
  142. 1940  PRINT D$"CLOSE": GOTO 1010